Recientemente encontré una forma de administrar la pestaña de Firefox en emacs. Esto suena un poco loco. Utilizo pestañas de estilo de árbol (complemento de Firefox), Moz Repl, emacs, org-mode para hacerlo.Administrar pestañas de Firefox en emacs con org-mode
Para 10-15 pestañas, mi plan funciona bien. Pero más de 20 pestañas, Mi firefox se cuelga al azar. Tal vez el desbordamiento de la pila de JavaScript o algo más? No sé lo que está mal con mi código. Publiqué el código más importado aquí. Somesone me ayuda a encontrar algunos errores?
Es un código básico de Chrome Firefox a continuación, puede ejecutarlo en Firefox sin emacs y MozPepl.
Uso las API de estilo de árbol api para obtener pestañas y configurar cada pestaña a nivel de nivel. La salida se usará en emacs con org-mode. fichas de estilo de árbol api: http://piro.sakura.ne.jp/xul/_treestyletab.html.en#api
El código se puede ejecutar de muchas maneras. Recomiendo el "complemento de espacio de trabajo". Copie mi código, elija el contexto de cromo para ejecutarlo. https://addons.mozilla.org/en-US/firefox/addon/workspace/
// two helper function to get title and url of tab
function getTitle(tab)
{
var brower = gBrowser.getBrowserForTab(tab)
var url = brower.currentURI.spec
var title = brower.contentTitle
return title
}
function getUrl(tab)
{
var brower = gBrowser.getBrowserForTab(tab)
var url = brower.currentURI.spec
var title = brower.contentTitle
return ":PROPERTIES:\n:URL:"+url+"\n:END:\n"
}
var L = gBrowser.tabContainer.childNodes.length //firefox tabs length
var str = "" //global string for output
//parse tabs. If tab has child, parse it. It tab has no child, just output.
for(i = 0; i < L; i++){
level = "*"
tab = gBrowser.tabContainer.childNodes[i]
if ('TreeStyleTabService' in window){
if(TreeStyleTabService.hasChildTabs(tab))
{
str = [str, level, " [+] ", getTitle(tab), "\n", getUrl(tab)].join("") //output title and url. level used in org-mode
treeparse(TreeStyleTabService.getChildTabs(tab), "**") //if a tab has child tabs. parse it and level up
}
str = [str, level, " ", getTitle(tab), "\n", getUrl(tab)].join("")
}
function treeparse(tablist,level) //parse a list of tabs. If tab has not a child, output. If it has childs, parse again
{
for(i=0 ; i < tablist.length;i++) {
tab = tablist[i]
if ('TreeStyleTabService' in window){
if(TreeStyleTabService.hasChildTabs(tab))
{
str = [str, level, " [+] ", getTitle(tab), "\n", getUrl(tab)].join("")
newlevel = level + "*"
treeparse(TreeStyleTabService.getChildTabs(tab),newlevel)
}
} }
str = [str, level, " ", getTitle(tab), "\n", getUrl(tab)].join("")
}
}
alert(str) //alert to view result. You can also write the result into a file.
gracias por su código – textpattern
Santa mierda, esta es una idea increíble. Yo también uso Tree Style Tabs y emacs org-mode, sería una locura para combinar los dos. – Ibrahim