outlines of visited web pages
< Next Topic | Back to topic list | Previous Topic >
Posted by Marbux
May 13, 2015 at 10:29 AM
> (1) any ideas on how to get a tabs outliner outline into another single-pane outliner?
I use tabs outliner and love it. But I had missed that you can now do an export.
(2) are you aware of any other program or extension through which I could export a chrome browsing session (all windows and tabs) into another outliner where it could be manipulated more easily?
I use the Copy All URLs chrome extension written by Vincent ParĂ© for the purpose, along with a couple of scripts I’ve written for NoteCase Pro. That extension has an settings to copy the URLs (or hyperlinks using the page’s title tag content as the label) from all open Chrome Windows. But a script to modify its output was necessary because for some reason I can’t fathom, Copy All URLs writes the raw HTML content it generates to the TXT clipboard rather than the HTML clipboard. So it was necessary to get the content into the right clipboard for pasting to a rich text editor.
That approach does not get you the hierarchy, but it would be fairly trivial for me to write another one that would grab each link’s label and create a node using the label as the node title, then inserting the link as the node’s content. That would get you one node per link, setting the stage to quickly move nodes into the hierarchy you want. Let me know if that interests you enough for me to write the code.
The second script below allows for tweaking the number of line breaks betwen links.
—[[
NoteCase Pro script
See http://www.notecasepro.com/
SCRIPT NAME: Modify ‘Copy All URLs’ Output
v. 1.0.1
PURPOSE: The Modify ‘Copy All URLs’ Output script modifies the content written to the .txt clipboard by the Chromium/Google Chrome extension, Copy All URLs. https://chrome.google.com/webstore/detail/copy-all-urls/djdmadneanknadilpjiknlnanaolmbfk (make sure you get the version written by Vincent ParĂ©; there is another Chrome extension with the same name that is incompatible with this script).
That extension writes all URLs for the current browser session (with or without named links) to the operating environment’s .txt clipboard resulting in an incompatibility with NC Pro because the program expects HTML to be written to the HTML clipboard. Without the actions of this script, raw HTML markup would be displayed in the Note Pane and there would be no hyperlink.
This script makes the necessary modifications and also separates each link with a blank line for improved clarity. To remove the blank lines, if desired, use the Replace Line Breaks in Selection script found under Editing Menu > Note Pane Actions.
USAGE INSTRUCTIONS: Use Copy All URLs to write URLs or links for all open browser tabs to the clipboard (links option recommended, which uses each web page’s TITLE tags’ content as the link label), run this script, and then paste to NoteCase Pro’s Note Pane. The script also writes the same altered content to the .txt clipboard, so you can still paste raw HTML to any program if desired using Shft+Ctrl+V or the “paste as plain text” feature.
Notice that with Copy All URLs, you can either copy URLs/links for all open tabs or copy URLs/links for only selected tabs by holding down the Control key whilst clicking on tabs, the latter being very handy when you have pages open relevant to different topics but wish to copy URLs/Links for only a subset.
RIGHTS: This script’s author, Paul E. Merrell, hereby waives all copyright and related or neighboring rights to this script, pursuant to the Creative Commons CC0 Universal relinquishment of rights found at http://creativecommons.org/publicdomain/zero/1.0/
CHANGE LOG:
v. 1.0.1
* Adjusted size of InfoBox Window.
—]]
—gets clipboard’s content
strSourceClip = Nc_Env_Clipboard_Get()
assert(strSourceClip ~= “”, “ERROR: Clipboard is empty.”)
—clears the .txt and .html clipboards
Nc_Env_Clipboard_Set(”“, 1)
Nc_Env_Clipboard_Set(”“, 0)
—converts XHTML line breaks to HTML and adds an extra line break between each link
strModifiedClip = string.gsub(strSourceClip, “
“, “
”)
strModifiedClip = string.gsub(strModifiedClip, “
“, “
”)
strModifiedClip = string.gsub(strModifiedClip, “
”, “
\n
”)
—writes modified string to .html and .txt clipboards
Nc_Env_Clipboard_Set(strModifiedClip, 1, strModifiedClip)
—tells the user what happened
nDisplayWidth, nDisplayHeight = Nc_Env_DisplaySize_Get(0)
nDlgWidth = .25 * nDisplayWidth
nDlgHeight = .25 * nDisplayHeight
Nc_GUI_InfoBox(“You can now paste the converted content to the Note Pane using Ctrl+V. Or to paste raw HTML, use Shft+Ctrl+V.”, 1, “Info”, nDlgWidth, nDlgHeight)
—[[
NoteCase Pro script
See http://www.notecasepro.com/
SCRIPT NAME: Replace Line Breaks in Selection
v. 1.0.0
PURPOSE: The Replace Line Breaks in Selection script throws a menu enabling the user to choose between replacing each line break in selected text with two line breaks or replacing each pair of line breaks with a single line break.
RIGHTS: This script’s author, Paul E. Merrell, hereby waives all copyright and related or neighboring rights to this script, pursuant to the Creative Commons CC0 Universal relinquishment of rights found at http://creativecommons.org/publicdomain/zero/1.0/
—]]
—loads functions
function Get_Selected_Note_Content(nDocID, strNoteID, nIsHtml)
—get character offsets for selected text - must be global
nSelFrom, nSelTo = Nc_Note_SelectionRange_Get(nDocID, strNoteID)
assert(nSelFrom ~= nSelTo, [[
ERROR: Text must be selected
in the Note Pane when using
this script. Aborting execution.]])
—get user’s selected content in scripter’s desired format
strContent = Nc_Note_Content_Get(nDocID, strNoteID, nIsHtml, nSelFrom, nSelTo)
return strContent
end—function GetSelected
function Replace_Selected_Note_Content(nDocID, strNoteID, strContent, nIsHtml)
—make sure nSelFrom is
<= SelTo
if nSelFrom >
nSelTo then nSelFrom, nSelTo = nSelTo, nSelFrom end
—replace the selected content in the note
Nc_Note_Content_Set(nDocID, strNoteID, strContent, nIsHtml, nSelFrom, nSelTo)
—get the character count of the new string
local nCount = Nc_String_CharacterCount_Get(strContent)
—calculate new cursor offset
local nCursorPos = nSelFrom + nCount
—remove selection highlighting and set the cursor position immediately after the inserted new string
Nc_Note_SelectionRange_Set(nDocID, strNoteID, nCursorPos, nCursorPos)
return
end—function
—script begins
—gets this script’s document and note IDs
local nScriptDocID = Nc_Script_DocID_Get()
local strScriptNoteID = Nc_Script_NoteID_Get()
—gets ID for current document
local nDocID = Nc_Doc_ID_GetCur()
—sets dimensions for InfoBoxes
local nDisplayWidth, nDisplayHeight = Nc_Env_DisplaySize_Get(0)
local nDlgWidth = .25 * nDisplayWidth
local nDlgHeight = .15 * nDisplayHeight
—gets current Note ID
local strNoteID = Nc_Note_ID_GetCur(nDocID)
if strNoteID == “” then
Nc_GUI_InfoBox(“ERROR: A note must be selected before executing this action. The action will terminate without making any changes.”, 1, “ERROR”, nDlgWidth, nDlgHeight)
return
end
—get user’s choice
local nChoice = Nc_GUI_SelectionDlg(“Replace Line Breaks”, “Replace each line break with 2”, “Replace double line breaks with 1”)
if nChoice == -1 then return end—user canceled abort
—gets selection
local s = Get_Selected_Note_Content(nDocID, strNoteID, 1)
—do substitutions
if nChoice == 0 then
s=utf8ex.gsub(s, “
”, “
\n
”)
elseif nChoice == 1 then
s=utf8ex.gsub(s, “
\n
”, “
”)
end—if nChoice
—replaces selected note content
Replace_Selected_Note_Content(nDocID, strNoteID, s, 1)
Posted by Marbux
May 13, 2015 at 10:35 AM
I see that the forum software doesn’t like greater than and less than signs. You can email me at marbux pine gmail maple com if you want the scripts (subtract the trees).
Posted by jimspoon
May 14, 2015 at 09:59 AM
Pierre, thanks very much for this new feature. I have tried it out and it works very well.
Marbux, thanks - I will check out the Copy All URLs extension and the Notecase Pro scripts.
jim
Posted by Pierre Paul Landry
May 14, 2015 at 01:33 PM
jimspoon wrote:
>Pierre, thanks very much for this new feature. I have tried it out and it works very well.
Great !
For now, drag-drop generates a flat list of hyperlinks, it seemed to make more sense than preserving the hierarchy.
(I don’t use Tabs Outliner myself and do not see the usefulness of the hierarchy of web pages…)
Pierre
Posted by Marbux
May 15, 2015 at 04:28 AM
Pierre Paul Landry wrote:
>(I don’t use Tabs Outliner myself and do not see the usefulness of the
>hierarchy of web pages…)
For many of us, the normal state in Chrome is to have many tabs open, relating to different topics. E.g., I’m working on researching a topic, but an email or a phone call diverts me to doing something else in the browser. The oldest solution to that problem that I recall was the Firefox “group bookmarks” feature, that allowed you to save bookmarks for all open tabs as children of a folder bookmark that the user supplied the title for. Then the bookmarks not relevant to that topic could be weeded from the group bookmark. Then on to the next topic.
It was crude but it was an advance. Chrome has no equivalent of the Firefox bookmarks column. Its bookmarks manager is a full web page. Think of Tabs Outliner as a substitute for the Firefox group bookmarks, although it rides atop the page display it is located, like Firefox Bookmarks, on the left side of the screen. One can drag bookmarks into hierarchies, creating topical dividers akin to Firefox bookmark folders by creating “notes.” Bookmarks can then be dragged into the desired topical hierarchies. Then after saving the session in Tabs Outliner and closing all tabs in the browser, one can later return to the hierarchies to open only the desired bookmark hierarchy and add bookmarks to them (or subtract from them).
There are many other bells and whistles, but I believe that’s the basic importance of the hierarchies in Tabs Outliner. They are a means of classification and organization, as in other outliners.